/*
 * @Description: Collection
 * 
 * @Author: 平常心
 * 
 * @Date: 2024-09-26 09:13:25
 * 
 * @LastEditors: 平常心
 * 
 * @LastEditTime: 2024-09-26 10:47:23
 */

import java.util.Collection;
import java.util.ArrayList;

/**
 * Test01Collection
 */
// 注解 - 告诉编译器 忽略 unchecked 类型的警告
@SuppressWarnings("unchecked")
public class Test01Collection {
  // 测试类
  public static void main(String[] args) {
    // 创建一个集合的对象
    // 接口 变量名 = new 实现类(参数);
    // 红线是报错 黄线是警告 警告等后面处理
    // 记得导包
    // 在声明集合时，指定泛型参数可以提高代码的可读性和类型安全性。
    // Collection<String> collection = new ArrayList<String>();
    // 上述格式定义的集合对象，只能存储String类型的元素，如果存放其他引用类型元素，则编译报错。
    // Collection<String> collection = new ArrayList<>();
    Collection collection = new ArrayList();
    // 判断集合是否为空
    if (collection.isEmpty()) {
      System.out.println("collection is empty");
    }
    collection.add("hello, world");
    // Integer integer = 1;
    // 自动扩容
    collection.add(1);
    collection.add('a');
    System.out.println("collection:" + collection);
    // collection.clear();
    String str = new String("removeMe");
    collection.add(str);
    System.out.println("collection:" + collection);
    System.out.println(collection.size());
    System.out.println(collection.remove(str));// true
    System.out.println(collection.remove(str));// false
    System.out.println(collection.size());
    System.out.println("collection:" + collection);
    // 将单列结合转化成数组
    Object[] objArr = collection.toArray();
    // 遍历数组元素
    for (Object obj : objArr) {
      System.out.println("obj:" + obj);
    }

  }
}